package TurtleGraphics; public class WigglePen extends StandardPen { private int numWiggles = 5; private double wiggleAngle = 30; public WigglePen(){ super(); } public WigglePen(SketchPadWindow win){ super(win); } public WigglePen(SketchPad pad, int w, double wa){ super(pad); numWiggles = w; wiggleAngle = wa; } public void move(double distance){ int i; double sizeOfMove; double halfAngle = wiggleAngle / 2.0; sizeOfMove = distance / (numWiggles * 2.0 * Math.cos (Math.PI * halfAngle / 180.0)); turn(halfAngle); for (i = 1; i <= numWiggles; i++){ turn(-wiggleAngle); super.move(sizeOfMove); turn(+wiggleAngle); super.move(sizeOfMove); } turn(-halfAngle); } public void move(double x, double y){ double deltaX = x - xPos; double deltaY = y - yPos; double distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); turn (x, y); move(distance); } }